/******************************************************************************

                                SYMMETRY.H

  Title:  Include file for crystallographic symmetry group information. 
  Author: Hanna Szoke
  Date:	  Oct. 1994; rewritten Oct. 1996 for all space groups.

******************************************************************************/


#define	COSEPS	1.e-10 
#define SPACEGROUPS	230 
#define	SMALLSTRING	20
#define	ESYM	1.e-1		/* relative measure of asymmetry	*/
#define ABSSYM	1.e-4		/* absolute limit for considering asymmetry */
#define ROUND 1.e-4	/* for converting fractional to integer indices */

#define	MEL	12			/* # of matrix elements in 1 matop */

		/**************************
		Commonly used functions
		**************************/

void	apply_symop(real, real, real, real *, 
		    real *, real *, real *) ;
void	apply_symop_hkl(int, int, int, real *, int *, int *, int *, real *) ;
void	index_to_fract(int, int, int, int, real *, real *, real *) ; 
int	fract_to_index(int, real, real, real, int, int, int) ;

extern	char	SGname[] ;		/* name of crystal symmetry group */
extern	char	PGname[] ;		/* name of crystal point group */

extern	char	crystal_system[20] ;	/* 1 of the 7: 
					TRICLINIC, MONOCLINIC, ORTHORHOMBIC, 
					TETRAGONAL, TRIGONAL, HEXAGONAL or 
					CUBIC	*/

extern	int	laue_group ;		/* one of 11: a subdivision of 
					crystal_system used to identify 
					unique data in (h,k,l) */

extern	real	*matop ;		/* to hold matrix operators for doing
					transformations between points related 
					by crystal symmetry */

extern	int	Nprim ;			/* # of primitive RT matrices */

extern	int	maxdenom[3] ;		/* max. denominators of translation 
					terms, needed for ensuring good 
					Nx, Ny and Nz */

extern	int	Ncs ;			/* # of asymmetric units in crystal 
					(= # rotation/translation operations
					for the selected space group)  */

extern	int	Ics ;			/* # of unique grid points in an 
					asymmetric unit */

